package com.igeekhome.ccs.biz;


import com.igeekhome.ccs.entity.CustomerService;
import com.igeekhome.ccs.entity.CustomerServiceTime;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ICustomerServiceBiz {

    /**
     * 设置/个人信息
     * @param cs 客服对象
     * @return
     */
    int update(CustomerService cs);

    /**
     * 根据Username获得cs对象
     * @param  username 用户名
     * @return
     */
    CustomerService getOneByUsername(String username);

    /**
     * 客服信息编辑页
     * @param id 客服id
     * @return
     * 根据id获得cs对象
     */
    CustomerService getOneById(int id);


    /**
     * 获得全部的 客服时间记录
     * @return
     */
    List<CustomerServiceTime> getWorkAll();

    /**
     * 根据组获得 客服时间记录
     * @return
     */
    List<CustomerServiceTime> queryWorkByGroup(String group);

    /**
     * 根据客服  realName 获得客服时间记录
     * @return
     */
    List<CustomerServiceTime> queryWorkByCs(String cs);

    /**
     * 根据起止时间获得客服时间记录
     * @return
     */
    List<CustomerServiceTime> queryWorkByTime(Date start, Date end);





//👇张煜涵---------------------

    /**
     * 客服管理 预显示所有客服信息
     * 功能：提供所有客服信息
     */
    List<CustomerService> query();

    /**
     * 客服管理 模糊匹配
     * 参数：用户输入的查询字符串
     * 功能：通过该字符串查询对应客服信息
     */
    List<CustomerService> matchCsInfowithString(String str);

    /**
     * 客服管理
     * 参数：客服Id,当前客服状态
     * 功能：修改客服状态
     */
    void changeWorkState(int csId,String oldWorkStatus);

    /**
     * 客服管理
     * 参数：客服id
     * 功能：删除单个客服
     */
    void deleteCsById(int csId);

    /**
     * 客服管理
     * 参数：客服id的list
     * 功能：批量删除客服
     */
    void deleteCsByList(List<Integer> list);

    /**
     * 新增客服信息页
     * 参数：cs对象
     * 功能：新增客服到数据库
     */
    void createNewCs(CustomerService customerService);



    /**
     * 编辑客服信息页
     * 参数：cs对象
     * 功能：编辑客服信息
     */
    int updateCs(CustomerService customerService);
//👆张煜涵---------------------------

//👇梁仲轩----------------------------
    /**
     * 登录
     * 参数：登录名,密码
     */
    int login(String  username, String password);
    /**
     * 登录注册/注册
     * 参数：登录名,密码
     */
    int regist(String username,String password);
    /**
     * 首页/客服信息
     * 参数：五
     * 功能：返回所有客服信息，并且拼接
     */
    int getOnlineNumber();
    List<Map<String, Object>> getCsInfolist();
//👆梁仲轩-----------------------------






}
